package utiles;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class Log {
	private static final String EXT= ".log", SEPARADOR= "/";
	private File archivoLog;
	private FileWriter w;
	private BufferedWriter bw;
	private PrintWriter wr;
	
	public Log(String carpeta, String nombreArchivo){
		carpeta= carpeta.replaceAll("\\\\", SEPARADOR);
		if(!carpeta.endsWith(SEPARADOR)){
			carpeta= carpeta+SEPARADOR;
		}
		archivoLog= new File(carpeta+nombreArchivo+EXT);
		crearArchivoLog();
	}
	
	public Log() {
		this(crearCarpetaDefault(), "default"+Fecha.getMarcaTiempo());
	}

	private static String crearCarpetaDefault() {
		return System.getProperty("user.dir");
	}

	private boolean crearArchivoLog(){
		String nombre= archivoLog.getAbsolutePath();
        if(!nombre.endsWith(EXT)){
        	nombre= nombre+EXT;
        }
        
        try{
        	w = new FileWriter(nombre);
        	bw = new BufferedWriter(w);
        	wr = new PrintWriter(bw); 
        	return true;
        }catch(Exception e){
        	System.err.println("Error en la escritura del archivo: "+e.getLocalizedMessage());
        	return false;
        }		
	}
	
	public boolean agregarEntrada(String entrada){
		wr.print(entrada+"\n");
		return true;
	}
		
	public void cerrar(){
    	try {
    		//w.close();
			bw.close();
			wr.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
